Skip to content

align mintlify nav with current docs structure#2526

Open
swstica wants to merge 2 commits into
mainfrom
swastika/fix/mint-config
Open

align mintlify nav with current docs structure#2526
swstica wants to merge 2 commits into
mainfrom
swastika/fix/mint-config

Conversation

@swstica

@swstica swstica commented Jun 18, 2026

Copy link
Copy Markdown
Contributor

added mintlify pages that were missing in docs.json

@greptile-apps

greptile-apps Bot commented Jun 18, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This PR updates docs/docs.json to add nav entries for documentation pages that were previously hidden (not referenced in the sidebar), and renames the Agents group to Coding agents with updated paths.

  • Adds usage/readme, usage/data_streams/readme, usage/sensor_streams/readme as section landing pages, though the actual files on disk use uppercase README.md which will cause 404s on case-sensitive filesystems.
  • Renames the nav group from AgentsCoding agents and updates all child paths from agents/*coding-agents/*, adds coding-agents/worktrees, and adds new Capabilities sub-groups (Agents, Mapping) plus development/releasing.
  • Two capability docs still have no nav entry: capabilities/perception/readme.md (no Perception group at all) and capabilities/navigation/readme.md (omitted from the Navigation group).

Confidence Score: 3/5

The nav changes are safe to merge but the README case mismatch and missing redirects from earlier rounds remain unaddressed, leaving broken sidebar links and dead old URLs in the deployed site.

Three README.md files referenced as lowercase readme will 404 on Mintlify's Linux-based deployment. Old agents/* URLs have no redirects. Two capability pages (perception/readme, navigation/readme) are still absent from the nav despite the PR's goal of full alignment. New entries backed by real files (worktrees, a750, relocalization, releasing) are correct.

docs/docs.json — the README case entries and the absent Perception group warrant a second pass before this lands.

Important Files Changed

Filename Overview
docs/docs.json Nav entries added for usage readmes (case mismatch with uppercase README.md files on disk), coding-agents group renamed and expanded, new capabilities sub-groups for Agents/Mapping added, development/releasing linked — Perception group and navigation/readme are still missing; README case issues and missing redirects from agents/* were flagged in earlier review rounds and remain unaddressed.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[docs.json Navigation] --> B[Getting Started]
    A --> C[Installation]
    A --> D[Usage]
    A --> E[Coding Agents renamed]
    A --> F[Capabilities]
    A --> G[Platforms]
    A --> H[Development]

    D --> D1[usage/readme added]
    D --> D2[Data Streams]
    D --> D3[Sensor Streams]
    D2 --> D2a[usage/data_streams/readme added]
    D3 --> D3a[usage/sensor_streams/readme added]

    E --> E1[coding-agents/index renamed]
    E --> E2[coding-agents/worktrees added]
    E --> E3[Authoring agent docs]

    F --> F1[Agents added group]
    F --> F2[Manipulation expanded]
    F --> F3[Mapping added group]
    F --> F4[Memory]
    F --> F5[Navigation]
    F --> F6[Teleoperation]
    F --> F7[Perception missing group]

    F5 --> F5a[capabilities/navigation/readme missing entry]

    H --> H1[development/releasing added]
Loading
%%{init: {'theme': 'base', 'themeVariables': {"darkMode": true, "background": "#0d1117", "primaryColor": "#21262d", "primaryTextColor": "#e6edf3", "primaryBorderColor": "#8b949e", "lineColor": "#8b949e", "textColor": "#e6edf3", "edgeLabelBackground": "#161b22", "actorBkg": "#21262d", "actorBorder": "#8b949e", "actorTextColor": "#e6edf3", "actorLineColor": "#8b949e", "signalColor": "#8b949e", "signalTextColor": "#e6edf3", "noteBkgColor": "#373320", "noteBorderColor": "#d4a72c", "noteTextColor": "#f0e6c0", "labelBoxBkgColor": "#21262d", "labelBoxBorderColor": "#8b949e", "labelTextColor": "#e6edf3", "loopTextColor": "#e6edf3", "activationBkgColor": "#30363d", "activationBorderColor": "#8b949e"}}}%%
flowchart TD
    A[docs.json Navigation] --> B[Getting Started]
    A --> C[Installation]
    A --> D[Usage]
    A --> E[Coding Agents renamed]
    A --> F[Capabilities]
    A --> G[Platforms]
    A --> H[Development]

    D --> D1[usage/readme added]
    D --> D2[Data Streams]
    D --> D3[Sensor Streams]
    D2 --> D2a[usage/data_streams/readme added]
    D3 --> D3a[usage/sensor_streams/readme added]

    E --> E1[coding-agents/index renamed]
    E --> E2[coding-agents/worktrees added]
    E --> E3[Authoring agent docs]

    F --> F1[Agents added group]
    F --> F2[Manipulation expanded]
    F --> F3[Mapping added group]
    F --> F4[Memory]
    F --> F5[Navigation]
    F --> F6[Teleoperation]
    F --> F7[Perception missing group]

    F5 --> F5a[capabilities/navigation/readme missing entry]

    H --> H1[development/releasing added]
Loading

Reviews (3): Last reviewed commit: "Merge branch 'main' into swastika/fix/mi..." | Re-trigger Greptile

Comment thread docs/docs.json
Comment on lines +147 to 150
"pages": [
"capabilities/teleoperation/hosted"
]
}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Missing file: capabilities/teleoperation/hosted

The nav entry capabilities/teleoperation/hosted has no corresponding source file — docs/capabilities/teleoperation/ does not exist at all. Mintlify will render a broken/404 entry in the sidebar for this group, and clicking it will return a page-not-found error.

Comment thread docs/docs.json
"agents/testing",
"coding-agents/index",
"coding-agents/style",
"coding-agents/code-quality-rules",

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Missing file: coding-agents/code-quality-rules

docs/coding-agents/code-quality-rules.md does not exist in the repository. Adding it to the nav will produce a broken sidebar link that 404s for visitors.

Comment thread docs/docs.json
Comment on lines 38 to +53
@@ -49,6 +50,7 @@
{
"group": "Data streams",
"pages": [
"usage/data_streams/readme",

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 README filename case mismatch may break page resolution

The three new entries usage/readme, usage/data_streams/readme, and usage/sensor_streams/readme reference lowercase readme, but the actual files on disk are docs/usage/README.md, docs/usage/data_streams/README.md, and docs/usage/sensor_streams/README.md (all uppercase). On the case-sensitive Linux filesystem where Mintlify typically deploys, these lookups will fail to resolve the file, resulting in 404s. The other pages in this codebase all use lowercase filenames consistently — consider renaming the three README.md files to readme.md.

Comment thread docs/docs.json
Comment on lines +82 to 97
"group": "Coding agents",
"pages": [
"agents/index",
"agents/style",
"agents/testing",
"coding-agents/index",
"coding-agents/style",
"coding-agents/code-quality-rules",
"coding-agents/testing",
"coding-agents/worktrees",
{
"group": "Authoring agent docs",
"pages": [
"agents/docs/index",
"agents/docs/codeblocks",
"agents/docs/doclinks"
"coding-agents/docs/index",
"coding-agents/docs/codeblocks",
"coding-agents/docs/doclinks"
]
}
]

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 No redirects from old agents/* paths to new coding-agents/* paths

The group was renamed from agents to coding-agents and all page paths updated accordingly, but no redirects entries have been added to docs.json for the old URLs (agents/index, agents/style, agents/testing, agents/docs/index, etc.). Anyone who bookmarked or linked to those pages will hit 404s. Mintlify supports "redirects": [{"source": "/agents/index", "destination": "/coding-agents/index"}] entries at the top level of docs.json.

@swstica swstica force-pushed the swastika/fix/mint-config branch from b3eee54 to b47e1f8 Compare June 18, 2026 12:14
@codecov

codecov Bot commented Jun 18, 2026

Copy link
Copy Markdown

❌ 2 Tests Failed:

Tests completed Failed Passed Skipped
2275 2 2273 74
View the full list of 2 ❄️ flaky test(s)
dimos.e2e_tests.test_dimsim_spatial_memory::test_go_to_the_bed

Flake rate in main: 22.22% (Passed 28 times, Failed 8 times)

Stack Traces | 570s run time
lcm_spy = <dimos.e2e_tests.lcm_spy.LcmSpy object at 0x72bbec15d310>
start_blueprint = <function start_blueprint.<locals>.set_name_and_start at 0x72bbea7c0220>
human_input = <function human_input.<locals>.send_human_input at 0x72bbea7c07c0>
dim_sim = <dimos.e2e_tests.dim_sim_client.DimSimClient object at 0x72bbec0a58b0>
explore_house = <function explore_house.<locals>.explore at 0x72bbea7c11c0>

    @pytest.mark.self_hosted_large
    def test_go_to_the_bed(lcm_spy, start_blueprint, human_input, dim_sim, explore_house) -> None:
        start_blueprint(
            "run",
            "unitree-go2-agentic",
            simulator="dimsim",
        )
        lcm_spy.save_topic(".../McpClient/on_system_modules/res")
        lcm_spy.wait_for_saved_topic(".../McpClient/on_system_modules/res", timeout=1200.0)
    
        explore_house()
    
        human_input("go to the bed")
    
>       lcm_spy.wait_until_odom_position(-3.567, -1.332, threshold=2, timeout=180)

dim_sim    = <dimos.e2e_tests.dim_sim_client.DimSimClient object at 0x72bbec0a58b0>
explore_house = <function explore_house.<locals>.explore at 0x72bbea7c11c0>
human_input = <function human_input.<locals>.send_human_input at 0x72bbea7c07c0>
lcm_spy    = <dimos.e2e_tests.lcm_spy.LcmSpy object at 0x72bbec15d310>
start_blueprint = <function start_blueprint.<locals>.set_name_and_start at 0x72bbea7c0220>

dimos/e2e_tests/test_dimsim_spatial_memory.py:32: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
dimos/e2e_tests/lcm_spy.py:182: in wait_until_odom_position
    self.wait_for_message_result(
        predicate  = <function LcmSpy.wait_until_odom_position.<locals>.predicate at 0x72be5f6598a0>
        self       = <dimos.e2e_tests.lcm_spy.LcmSpy object at 0x72bbec15d310>
        threshold  = 2
        timeout    = 180
        x          = -3.567
        y          = -1.332
dimos/e2e_tests/lcm_spy.py:168: in wait_for_message_result
    self.wait_until(
        event      = <threading.Event at 0x72bbec0a6690: unset>
        fail_message = 'Failed to get to position x=-3.567, y=-1.332'
        listener   = <function LcmSpy.wait_for_message_result.<locals>.listener at 0x72bbea7c1300>
        predicate  = <function LcmSpy.wait_until_odom_position.<locals>.predicate at 0x72be5f6598a0>
        self       = <dimos.e2e_tests.lcm_spy.LcmSpy object at 0x72bbec15d310>
        timeout    = 180
        topic      = '/odom#geometry_msgs.PoseStamped'
        type       = <class 'dimos.msgs.geometry_msgs.PoseStamped.PoseStamped'>
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <dimos.e2e_tests.lcm_spy.LcmSpy object at 0x72bbec15d310>

    def wait_until(
        self,
        *,
        condition: Callable[[], bool],
        timeout: float,
        error_message: str,
        poll_interval: float = 0.1,
    ) -> None:
        start_time = time.time()
        while time.time() - start_time < timeout:
            if condition():
                return
            time.sleep(poll_interval)
>       raise TimeoutError(error_message)
E       TimeoutError: Failed to get to position x=-3.567, y=-1.332

condition  = <bound method Event.is_set of <threading.Event at 0x72bbec0a6690: unset>>
error_message = 'Failed to get to position x=-3.567, y=-1.332'
poll_interval = 0.1
self       = <dimos.e2e_tests.lcm_spy.LcmSpy object at 0x72bbec15d310>
start_time = 1782220161.7151678
timeout    = 180

dimos/e2e_tests/lcm_spy.py:105: TimeoutError
dimos.e2e_tests.test_dimsim_walk_forward::test_walk_forward

Flake rate in main: 28.12% (Passed 23 times, Failed 9 times)

Stack Traces | 206s run time
lcm_spy = <dimos.e2e_tests.lcm_spy.LcmSpy object at 0x72bbec0a7b30>
start_blueprint = <function start_blueprint.<locals>.set_name_and_start at 0x72bbea7c1b20>
human_input = <function human_input.<locals>.send_human_input at 0x72bbea7c1c60>
dim_sim = <dimos.e2e_tests.dim_sim_client.DimSimClient object at 0x72bbec0a81a0>

    @pytest.mark.self_hosted_large
    def test_walk_forward(lcm_spy, start_blueprint, human_input, dim_sim) -> None:
        start_blueprint(
            "run",
            "--disable",
            "spatial-memory",
            "--disable",
            "security-module",
            "unitree-go2-agentic",
            simulator="dimsim",
        )
        lcm_spy.save_topic(".../McpClient/on_system_modules/res")
        lcm_spy.wait_for_saved_topic(".../McpClient/on_system_modules/res", timeout=1200.0)
    
        origin_x, origin_y = 1, 2
        dim_sim.set_agent_position(origin_x, origin_y)
    
        human_input("move forward 3 meter")
    
>       lcm_spy.wait_until_odom_position(origin_x + 3, origin_y, threshold=0.4, timeout=120)

dim_sim    = <dimos.e2e_tests.dim_sim_client.DimSimClient object at 0x72bbec0a81a0>
human_input = <function human_input.<locals>.send_human_input at 0x72bbea7c1c60>
lcm_spy    = <dimos.e2e_tests.lcm_spy.LcmSpy object at 0x72bbec0a7b30>
origin_x   = 1
origin_y   = 2
start_blueprint = <function start_blueprint.<locals>.set_name_and_start at 0x72bbea7c1b20>

dimos/e2e_tests/test_dimsim_walk_forward.py:37: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
dimos/e2e_tests/lcm_spy.py:182: in wait_until_odom_position
    self.wait_for_message_result(
        predicate  = <function LcmSpy.wait_until_odom_position.<locals>.predicate at 0x72bbea7c1760>
        self       = <dimos.e2e_tests.lcm_spy.LcmSpy object at 0x72bbec0a7b30>
        threshold  = 0.4
        timeout    = 120
        x          = 4
        y          = 2
dimos/e2e_tests/lcm_spy.py:168: in wait_for_message_result
    self.wait_until(
        event      = <threading.Event at 0x72bbec0a87d0: unset>
        fail_message = 'Failed to get to position x=4, y=2'
        listener   = <function LcmSpy.wait_for_message_result.<locals>.listener at 0x72bbea7c0360>
        predicate  = <function LcmSpy.wait_until_odom_position.<locals>.predicate at 0x72bbea7c1760>
        self       = <dimos.e2e_tests.lcm_spy.LcmSpy object at 0x72bbec0a7b30>
        timeout    = 120
        topic      = '/odom#geometry_msgs.PoseStamped'
        type       = <class 'dimos.msgs.geometry_msgs.PoseStamped.PoseStamped'>
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <dimos.e2e_tests.lcm_spy.LcmSpy object at 0x72bbec0a7b30>

    def wait_until(
        self,
        *,
        condition: Callable[[], bool],
        timeout: float,
        error_message: str,
        poll_interval: float = 0.1,
    ) -> None:
        start_time = time.time()
        while time.time() - start_time < timeout:
            if condition():
                return
            time.sleep(poll_interval)
>       raise TimeoutError(error_message)
E       TimeoutError: Failed to get to position x=4, y=2

condition  = <bound method Event.is_set of <threading.Event at 0x72bbec0a87d0: unset>>
error_message = 'Failed to get to position x=4, y=2'
poll_interval = 0.1
self       = <dimos.e2e_tests.lcm_spy.LcmSpy object at 0x72bbec0a7b30>
start_time = 1782220427.138064
timeout    = 120

dimos/e2e_tests/lcm_spy.py:105: TimeoutError

To view more test analytics, go to the Test Analytics Dashboard
📋 Got 3 mins? Take this short survey to help us improve Test Analytics.

@github-actions github-actions Bot added the ready-to-merge Required CI checks have passed on this PR label Jun 18, 2026
leshy
leshy previously approved these changes Jun 22, 2026

@leshy leshy left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

IDK if coding agents stuff belongs on mintlify, probably not but approving and you can decide

@github-actions github-actions Bot added ready-to-merge Required CI checks have passed on this PR and removed ready-to-merge Required CI checks have passed on this PR labels Jun 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ready-to-merge Required CI checks have passed on this PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants